{{!
  Copyright (c) HashiCorp, Inc.
  SPDX-License-Identifier: BUSL-1.1
~}}

<td data-test-indicators class="is-narrow">
  {{#if this.allocation.unhealthyDrivers.length}}
    <span
      data-test-icon="unhealthy-driver"
      class="tooltip text-center"
      role="tooltip"
      aria-label="Allocation depends on unhealthy drivers"
    >
      <Hds::Icon @name="alert-triangle-fill" @color="warning" class="icon-vertical-bump-down" />
    </span>
  {{/if}}
  {{#if this.allocation.nextAllocation}}
    <span
      data-test-icon="reschedule"
      class="tooltip text-center"
      role="tooltip"
      aria-label="Allocation was rescheduled"
    >
      <Hds::Icon @name="history" @color="faint" />
    </span>
  {{/if}}
  {{#if this.allocation.wasPreempted}}
    <span
      data-test-icon="preemption"
      class="tooltip text-center"
      role="tooltip"
      aria-label="Allocation was preempted"
    >
      <Hds::Icon @name="cloud-lightning" @color="faint" />
    </span>
  {{/if}}
</td>
<td data-test-short-id>
  <LinkTo
    @route="allocations.allocation"
    @model={{this.allocation.id}}
    class="is-primary"
  >
    {{this.allocation.shortId}}
  </LinkTo>
</td>
{{#if (eq this.context "job")}}
  <td data-test-task-group>
    <LinkTo
      @route="jobs.job.task-group"
      @models={{array
        (format-job-id this.allocation.job.id)
        this.allocation.taskGroupName
      }}
    >
      {{this.allocation.taskGroupName}}
    </LinkTo>
  </td>
{{/if}}
<td data-test-create-time>
  {{format-month-ts this.allocation.createTime}}
</td>
<td data-test-modify-time>
  <span
    class="tooltip"
    aria-label="{{format-month-ts this.allocation.modifyTime}}"
  >
    {{moment-from-now this.allocation.modifyTime}}
  </span>
</td>
<td data-test-client-status class="is-one-line">
  <span class="color-swatch {{this.allocation.clientStatus}}"></span>
  {{this.allocation.clientStatus}}
</td>
{{#if (eq this.context "volume")}}
  <td data-test-client>
    <Tooltip @text={{this.allocation.node.name}}>
      <LinkTo @route="clients.client" @model={{this.allocation.node}}>
        {{this.allocation.node.shortId}}
      </LinkTo>
    </Tooltip>
  </td>
{{/if}}
{{#if (or (eq this.context "taskGroup") (eq this.context "job"))}}
  <td data-test-job-version>
    {{this.allocation.jobVersion}}
  </td>
  <td data-test-client>
    <Tooltip @text={{this.allocation.node.name}}>
      <LinkTo @route="clients.client" @model={{this.allocation.node}}>
        {{this.allocation.node.shortId}}
      </LinkTo>
    </Tooltip>
  </td>
{{else if (or (eq this.context "node") (eq this.context "volume"))}}
  <td>
    {{#if (or this.allocation.job.isPending this.allocation.job.isReloading)}}
      ...
    {{else}}
      <LinkTo
        @route="jobs.job"
        @model={{format-job-id this.allocation.job.id}}
        data-test-job
      >
        {{this.allocation.job.name}}
      </LinkTo>
      <span class="is-faded" data-test-task-group>
        /
        {{this.allocation.taskGroup.name}}
      </span>
    {{/if}}
  </td>
  <td data-test-job-version class="is-1">
    {{this.allocation.jobVersion}}
  </td>
{{/if}}
{{#if (not (eq this.context "volume"))}}
  <td data-test-volume>
    {{if this.allocation.taskGroup.volumes.length "Yes"}}
  </td>
{{/if}}
<td data-test-cpu class="is-1 has-text-centered">
  <AllocationStat
    @metric="cpu"
    @allocation={{this.allocation}}
    @statsTracker={{this.stats}}
    @isLoading={{this.fetchStats.isRunning}}
    @error={{this.statsError}}
  />
</td>
<td data-test-mem class="is-1 has-text-centered">
  <AllocationStat
    @metric="memory"
    @allocation={{this.allocation}}
    @statsTracker={{this.stats}}
    @isLoading={{this.fetchStats.isRunning}}
    @error={{this.statsError}}
  />
</td>
{{#if this.model.job.actions.length}}
  <td class="job-actions-cell" />
{{/if}}
